package days2.loop;

import org.junit.Test;

import java.util.Scanner;

/**
 * @Author fengzihao
 * @Date 2024-04-16 20:52
 */
public class Practice {
    @Test
    public void test1() {
        // do... while 一定会执行一次。  不知道循环次数也可以
        // while 不一定一定执行。 不知道循环次数比较好
        // for  知道循环次数。
    }


    @Test
    public void test2() {
        // 现在，让输入一个用户名。直到这个用户名的长度在 [3,10] 之间，认为用户名符合规则。 才允许代码接着往下走
        // 不知道循环次数的情况，用 while 非常合适。
        // while  for 可以等价替换。

        Scanner scanner = new Scanner(System.in);

        // break : 跳出整个循环
        // continue ： 跳出当前循环。
        // return: 直接结束整个方法
        String inputUsername;

        System.out.println("请输入一个用户名，长度在[3,10]之间：");

        while (true) {

            inputUsername = scanner.nextLine();

            if (inputUsername.length() >= 3 && inputUsername.length() <= 10) {
                break;
            }
            System.out.println("输入的用户名，长度不对，应该在[3,10]之间， 请重新输入：");


            // 11
            // 22
        }

        System.out.println("输入的用户名正确：" + inputUsername);

        // 33
        // 44
    }

    //    循环练习
    @Test
    public void test3() {
        // 嵌套循环。 打印  3*4行的 *
        // ****
        // ****
        // ****
        // 3*4   4*5
        // 外面这层循环是打印行的。 里面的循环是打印一列一列的
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print("*");
            }
            System.out.println();
        }

        // 打印一个斜三角#
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print("#");
            }
            System.out.println();
        }
    }
// 跳出多层循环，要习惯用flag。！！！！！！！！！！！！！！

}
